#region Using directives
using System;
using Microsoft.Xna.Framework;
#endregion

namespace SharpWind.States
{
	public class ViewerSetup
	{
	}

	public abstract class State
	{
		#region Fields

		protected string name = string.Empty;

		protected ViewerSetup viewerSetup = null;

		#endregion

		#region Constructors

		public State( string name )
		{
			if( string.IsNullOrEmpty( name ) )
			{
				throw new ArgumentNullException( "name" );
			}

			this.name = name;
		}

		#endregion

		#region Methods

		public virtual void Load()
		{
		}

		public virtual void Close()
		{
		}

		public virtual void Update( GameTime gameTime )
		{
		}

		public virtual void Draw( GameTime gameTime )
		{
		}

		#endregion

		#region Properties

		public string Name
		{
			get
			{
				return this.name;
			}
		}

		public virtual ViewerSetup ViewerSetup
		{
			get
			{
				return this.viewerSetup;
			}
		}

		#endregion
	}
}
